import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const store = new Vuex.Store({
	state: {
		MQTT_OPTIONS: {
			connectTimeout: 5000,
			clientId: '',
			username: 'admin',
			password: 'H9634C07116@!#',
			clean: false
		},
		client:null,
		message:null
	},
	getters: {
		// store 的计算属性
		getState(state){
			return state;
		},
		getMessage(state){
			return state.message;
		}
		
	},
	mutations: {
		// 更改 Vuex 的 store 中的状态的唯一方法是提交 mutation
		modifyClient(state,client){
			state.client = client;
		},
		modifyClientId(state,clientId){
			state.MQTT_OPTIONS.clientId = clientId;
		},
		modifyMsg(state,msg){
			state.message = msg;
		}
	},
	actions: {
		/**
		 * Action 类似于 mutation，不同在于：		
			Action 提交的是 mutation，而不是直接变更状态。
			Action 可以包含任意异步操作。
		 */
	}
})

export default store